package com.cytech.cloudclinic.utils;

import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;

import androidx.fragment.app.Fragment;

import com.cytech.cloudclinic.R;
import com.zhihu.matisse.MimeType;
import com.zhihu.matisse.engine.impl.GlideEngine;
import com.zhihu.matisse.filter.Filter;
import com.zhihu.matisse.internal.entity.CaptureStrategy;

public class MatisseUtils {
    public static MatisseUtils getInstance() {
        return new MatisseUtils();
    }

    /**
     * selectSize 选择数量
     * REQUEST_CODE_CHOOSE 回传代号
     * capture 是否可拍照
     */
    public void openPicker(Fragment fragment, int selectSize, boolean capture, int REQUEST_CODE_CHOOSE) {
        com.zhihu.matisse.Matisse.from(fragment)
                .choose(MimeType.ofAll())// 展示所有类型文件（图片 视频 gif）
                .capture(capture) // 可拍照
                .captureStrategy(new CaptureStrategy(true,"com.cytech.cloudclinic.fileprovider","photograph"))
                .countable(true)// 记录文件选择顺序
                .maxSelectable(selectSize)//选择数量
                .addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K)) // 筛选数据源可选大小限制
                .gridExpectedSize(fragment.getResources().getDimensionPixelSize(R.dimen.grid_expected_size)) //grid item大小
                .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
                .thumbnailScale(0.85f)
                .imageEngine(new GlideEngine())
                .showPreview(false) // Default is `true`
                .forResult(REQUEST_CODE_CHOOSE);
    }

    /**
     * 选择头像
     */
    public void selectAvatar(Activity activity, int REQUEST_CODE_CHOOSE) {
        com.zhihu.matisse.Matisse.from(activity)
                .choose(MimeType.ofAll())// 展示所有类型文件（图片 视频 gif）
                .countable(true)// 记录文件选择顺序
                .maxSelectable(1)//选择数量
//                .isCrop(true)                         // 开启裁剪
//                .cropOutPutX(400)                     // 设置裁剪后保存图片的宽高
//                .cropOutPutY(400)                     // 设置裁剪后保存图片的宽高
//                .cropStyle(CropImageView.Style.RECTANGLE)   // 方形裁剪CIRCLE为圆形裁剪
//                .isCropSaveRectangle(true)                  // 裁剪后保存方形（只对圆形裁剪有效）
                .addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K)) // 筛选数据源可选大小限制
                .gridExpectedSize(activity.getResources().getDimensionPixelSize(R.dimen.grid_expected_size)) //grid item大小
                .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
                .thumbnailScale(0.85f)
                .imageEngine(new GlideEngine())
                .showPreview(false) // Default is `true`
                .forResult(REQUEST_CODE_CHOOSE);
    }
}
